package com.ytjj.qmyx.admin.service;

import com.ytjj.common.api.CommonPage;
import com.ytjj.common.api.CommonResult;
import com.ytjj.qmyx.admin.model.request.SendSMSRequest;
import com.ytjj.qmyx.admin.model.request.SmsSenderRecordsRequest;
import com.ytjj.qmyx.admin.model.request.SmsTemplateRequest;
import com.ytjj.qmyx.admin.model.response.SmsPreviewContentResponse;
import com.ytjj.qmyx.admin.model.response.SmsSenderRecordsResponse;
import com.ytjj.qmyx.admin.model.response.SmsTemplateResponse;
import com.ytjj.qmyx.admin.model.sms.SmsSenderRecords;
import com.ytjj.qmyx.admin.model.sms.SmsTemplate;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * @author jiawei
 * @date 2023年04月18日 15:07
 * @describe
 */
public interface SmsManageService {

    /**
     * 编辑新增短信模板
     * @param smsTemplate
     * @return Integer
     */
    Integer addOrEditTemplate(SmsTemplate smsTemplate);

    /**
     * 修改短信模板状态
     */
    CommonResult changeStatus(Integer id,Integer status);


    /**
     * 删除模板
     */
    CommonResult delete(Integer id);

    /**
     * 分页查询模板
     */
    CommonPage<SmsTemplateResponse> getTemplateOnePage(SmsTemplateRequest request);


    /**
     * 分页查询短信发送记录
     */
    CommonPage<SmsSenderRecordsResponse> getSmsSendRecordsOnePage(SmsSenderRecordsRequest request);

    /**
     * 分页查询系统短信发送记录
     */
    CommonPage<SmsSenderRecordsResponse> getSysSmsSendRecordsOnePage(SmsSenderRecordsRequest request);


    /**
     * 用户发送模板短信
     */
    List<String> userSendSmsByTemplate(SendSMSRequest sendSMSRequest);

    /**
     * 用户发送自定义短信
     */
    List<String> userSendSmsFreedom(SendSMSRequest sendSMSRequest);


    /**
     * 短信预览接口
     */
    String previewSmsContent(SendSMSRequest sendSMSRequest);

    /**
     * 导入excel短信预览接口
     * @param file
     * @param smsType 1-自定义短信 2-模板短信
     * @param templateId
     * @return SmsPreviewContentResponse
     */
    SmsPreviewContentResponse previewImportSmsContent(MultipartFile file,Integer smsType,Integer templateId);

    /**
     * 导入excel发送短信
     */
    CommonResult sendImportSms(MultipartFile file, Integer smsType, Integer templateId);

    /**
     * 获得所有的签名
     */
    List<String> getAllSign();

}
